package ar.com.ctrln.control.mantenimiento.ticket;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;

import ar.com.ctrln.persistence.model.cliente.Cliente;
import ar.com.ctrln.persistence.model.contratacion.ContratacionServicio;
import ar.com.ctrln.persistence.model.servicios.Servicio;
import ar.com.ctrln.persistence.model.servicios.TipoServicio;
import ar.com.ctrln.persistence.model.sistema.dashboardPpal.Movimiento;
import ar.com.ctrln.persistence.model.ticket.Ticket;
import ar.com.ctrln.persistence.model.ticket.TipoTicket;
import ar.com.ctrln.services.servicio.GestorServicio;
import ar.com.ctrln.services.sistema.principal.GestorMovimiento;
import ar.com.ctrln.services.ticket.GestorTicket;
import ar.com.ctrln.services.cliente.GestorCliente;
import ar.com.ctrln.services.contratacion.GestorContratacionServicio;


@Controller("registrarTicket")
public class RegistrarTicket {

	@Autowired
	private GestorTicket gestorTicket;
	@Autowired
	private GestorServicio gestorServicio;
	@Autowired	
	private GestorCliente gestorCliente;
	@Autowired	
	private GestorContratacionServicio gestorContratacion;
	
	@Autowired
	private GestorMovimiento gestorMovimiento;
	
	private Movimiento movimiento;
		
	public void guardarTicket(Ticket ticket) {
	gestorTicket.guardar(ticket);
	
	//informo el nuevo movimiento a la pantalla principal...		
movimiento = gestorMovimiento.nuevoMovimiento("Nuevo ticket registrado: "+ticket.getOrganizacion().getRazonSocial()+", "+ticket.getTipoTicket().getNombre()+": "+ticket.getDescripcion(), 3, ticket.getId());
gestorMovimiento.guardar(movimiento);
	}
	
	public List<TipoTicket> listaTipoTicket() {
		return gestorTicket.listarTipoTickets();
	}
	
	public TipoTicket buscar(String tipo){
		return gestorTicket.getTipoTicket(tipo);
	}
	
	public List<TipoServicio> listaTipoServicio() {
		return gestorServicio.listarTipoServicio();
	}
	
	public List<Servicio> listaServicios() {
		return gestorServicio.listarServicios();
	}
	
	//Trae la lista de clientes para la seleccion de Emisor de Ticket
	public List<Cliente> listaClientes() {
		return gestorCliente.listarClientes();
	}
	
	public List<Servicio> listaServiciosPorTipo(long idTipoServicio) {
		return gestorServicio.listarServicios(idTipoServicio);
	}
	
	public List<ContratacionServicio> listaContratacionPorCliente(long idCliente) {
		return gestorContratacion.listar(idCliente);
	}
		
}
